完成 exchange manager 設定後即可進入本篇的重頭戲 — 多資料源 Catalog 設置,有句話說的好,只要給Trino 一個對的 Connector ,Trino 可以幫你連接到全世界。
雖說 Trino 可連接的資料源囊括自傳統關聯式資料庫如 MySQL 到資料湖如 HDFS 與 Iceberg,設定方式卻大同小異,所以本文僅就本人最常碰到的兩種作介紹,相信理解設置原理後其他資料源也難不倒聰明的讀者們。
設定路徑皆為 Trino cluster 成員們底下的 catalog
目錄 :
首先一定得告訴 Trino 你的 connector 叫什麼, 再來是對 Iceberg 的 *metastore ( AWS Glue ) 以及檔案格式 ( Parquet ) 做設定,最後則是 AWS S3 以及 Iceberg schema 和 partition 的設定 :
## iceberg.properties
connector.name=iceberg
fs.native-s3.enabled=true
iceberg.catalog.type=glue
iceberg.file-format=PARQUET
hive.metastore.glue.region=ap-southeast-1
hive.metastore.glue.default-warehouse-dir=s3://datalakehouse-elt-bronze-development
hive.metastore.glue.aws-access-key=${ENV:AWS_ACCESS_KEY_ID}
hive.metastore.glue.aws-secret-key=${ENV:AWS_SECRET_ACCESS_KEY}
s3.region=ap-southeast-1
s3.aws-access-key=${ENV:AWS_ACCESS_KEY_ID}
s3.aws-secret-key=${ENV:AWS_SECRET_ACCESS_KEY}
iceberg.register-table-procedure.enabled=true
iceberg.query-partition-filter-required=true
iceberg.query-partition-filter-required-schemas=\
datalakehouse_elt_raw_development,\
datalakehouse_silver_development
*metastore
系列文的第三篇《從倉儲到湖倉,初探Trino》有提到資料湖 metastore 的概念
簡單來說就是負責存 table schema、metadata 等的地方
而 AWS Glue 實作了 metastore 的功能故可拿來當 iceberg 的 metastore
再來則是 Google 著名的分析倉儲產品 — BigQuery,設定上就較 iceberg 簡單許多,畢竟人家是商用產品 XD,不過首先你必須設定一組可以連到 BQ 的 service account 並把帳密放到 .credentials
路徑裡頭才能使用 :
## bigquery.properties
connector.name=bigquery
bigquery.project-id=test
bigquery.credentials-file=/etc/trino/.credentials/gcp_service_account.json
系列文明日《Trino 地端架設與調參 (五)》將帶你認識 Trino CLI 的安裝與基本設定,並進一步說明如何透過 Trino CLI 實現跨資料源查詢,協助你更靈活地整合不同數據平台。
My Linkedin: https://www.linkedin.com/in/benny0624/
My Medium: https://hndsmhsu.medium.com/